home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / sys_util / regdb / vb_reg.bas next >
Encoding:
BASIC Source File  |  1994-02-08  |  3.5 KB  |  98 lines

  1. ' SHELL.DLL
  2. Declare Function RegOpenKey& Lib "SHELL.DLL" (ByVal hKey&, ByVal lpszSubKey$, lphKey&)
  3. Declare Function RegCreateKey& Lib "SHELL.DLL" (ByVal hKey&, ByVal lpszSubKey$, lphKey&)
  4. Declare Function RegQueryValue& Lib "SHELL.DLL" (ByVal hKey&, ByVal lpszSubKey$, ByVal lpszValue$, nSize&)
  5. Declare Function RegEnumKey& Lib "SHELL.DLL" (ByVal hKey&, ByVal iSubKey&, ByVal lpReturnedString$, ByVal nSize&)
  6. Declare Function RegSetValue& Lib "SHELL.DLL" (ByVal hKey&, ByVal lpszSubKey$, ByVal fdwType&, ByVal lpszValue$, ByVal dwLength&)
  7. Declare Function RegDeleteKey& Lib "SHELL.DLL" (ByVal hKey&, ByVal lpszSubKey$)
  8. Declare Function RegCloseKey& Lib "SHELL.DLL" (ByVal hKey&)
  9.  
  10. Global Const HKEY_CLASSES_ROOT = 1
  11. Global Const MAX_PATH = 128
  12. Global Const REG_SZ = 1
  13.  
  14. ' return codes from Registration functions
  15. Global Const ERROR_SUCCESS = 0&
  16. Global Const ERROR_BADDB = 1&
  17. Global Const ERROR_BADKEY = 2&
  18. Global Const ERROR_CANTOPEN = 3&
  19. Global Const ERROR_CANTREAD = 4&
  20. Global Const ERROR_CANTWRITE = 5&
  21. Global Const ERROR_OUTOFMEMORY = 6&
  22. Global Const ERROR_INVALID_PARAMETER = 7&
  23. Global Const ERROR_ACCESS_DENIED = 8&
  24.  
  25.  
  26. Sub AddKey ()
  27.     sKeyName = "MyApplication"
  28.     sKeyValue = "My Application 1.0"
  29.     ret& = RegCreateKey(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
  30.     ret& = RegSetValue(lphKey&, "", REG_SZ, sKeyValue, 0&)
  31. End Sub
  32.  
  33. Sub EnumRoot ()
  34.     Dim sSubKey As String * MAX_PATH
  35.     Dim sValue As String * MAX_PATH
  36.     Dim sKeyVal As String
  37.     BuffLen& = CLng(MAX_PATH)
  38.     
  39.     For i& = 0 To 1000
  40.         sSubKey = String(MAX_PATH, " ")
  41.         sValue = String(MAX_PATH, " ")
  42.         BuffLen& = CLng(MAX_PATH)
  43.         ret& = RegEnumKey(HKEY_CLASSES_ROOT, i&, sSubKey, BuffLen&)
  44.         If ret& <> 0 Then Exit For
  45.         sKeyVal = Left(sSubKey, Len(Trim$(sSubKey)) - 1)
  46.         ret& = RegQueryValue(HKEY_CLASSES_ROOT, sKeyVal, sValue, BuffLen&)
  47.         Debug.Print Left$(sValue, BuffLen&)
  48.     Next i&
  49.     
  50. End Sub
  51.  
  52. Sub GetCurVer ()
  53.     Dim sSubKey As String * MAX_PATH
  54.     Dim sValue As String * MAX_PATH
  55.     Dim sKeyVal As String
  56.     BuffLen& = CLng(MAX_PATH)
  57.     
  58.     For i& = 0 To 1000
  59.         sSubKey = String(MAX_PATH, " ")
  60.         sValue = String(MAX_PATH, " ")
  61.         BuffLen& = CLng(MAX_PATH)
  62.         ret& = RegEnumKey(HKEY_CLASSES_ROOT, i&, sSubKey, BuffLen&)
  63.         If ret& <> 0 Then Exit For
  64.         sKeyVal = Left(sSubKey, Len(Trim$(sSubKey)) - 1)
  65.         ret& = RegOpenKey(HKEY_CLASSES_ROOT, sKeyVal, hkSFE&)
  66.         ret& = RegQueryValue(hkSFE&, "CurVer", sValue, BuffLen&)
  67.         If ret& = 0 Then
  68.             Debug.Print "CurrentVersion = " & Left$(sValue, BuffLen&)
  69.         End If
  70.         ret& = RegCloseKey(hkSFE&)
  71.     Next i&
  72. End Sub
  73.  
  74. Sub GetServer ()
  75.     Dim sSubKey As String * MAX_PATH
  76.     Dim sValue As String * MAX_PATH
  77.     Dim sKeyVal As String
  78.     BuffLen& = CLng(MAX_PATH)
  79.     
  80.     For i& = 0 To 10
  81.         sSubKey = String(MAX_PATH, " ")
  82.         sValue = String(MAX_PATH, " ")
  83.         BuffLen& = CLng(MAX_PATH)
  84.         ret& = RegEnumKey(HKEY_CLASSES_ROOT, i&, sSubKey, BuffLen&)
  85.         If ret& <> 0 Then Exit For
  86.         sKeyVal = Left(sSubKey, Len(Trim$(sSubKey)) - 1)
  87.         ret& = RegOpenKey(HKEY_CLASSES_ROOT, sKeyVal & "\protocol\StdFileEditing", hkSFE&)
  88.         ret& = RegQueryValue(hkSFE&, "server", sValue, BuffLen&)
  89.         If ret& = 0 Then
  90.             Debug.Print "KeyVal=" & sKeyVal
  91.             Debug.Print "  Key=" & hkSFE&, " Server= " & Left$(sValue, BuffLen&)
  92.         End If
  93.         ret& = RegCloseKey(hkSFE&)
  94.     Next i&
  95.  
  96. End Sub
  97.  
  98.